home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
amok_lha
/
amok72.lha
/
while-Interpreter
/
Source
/
Quad.MOD
< prev
next >
Wrap
Text File
|
1993-08-15
|
3KB
|
71 lines
(******************************
* Programm von Dieter Seidel *
* Eingegeben am 14.11.1991 *
* Berechnet die Quadrupel- *
* darstellung eines einge- *
* gebenen while-Programs und *
* fuehrt dieses dann aus. *
******************************)
(* Schreiben Sie ein Pascal-Programm, das auf Eingabe eines standardisierten *
* while-Programmes dessen Quadrupel-Darstellung berechnet. *
* Unter einem standardisierten while-Programm verstehen wir ein Programm, *
* in demm begin-end-Konstrukte immer in der Form *
* *
* while X # Y do begin ... end *
* *
* und nur dort vorkommen (ausser dem begin-end, in das das gesamte Programm *
* eingeschlossen ist). *
* *
* Zeitbedarf: *
* *
* Programm bX1:255;X2:255;U3e --> Multipliziere 255*255 *
* Anweisungen : 195589 Zeit : 364 Sekunden *
* ---> 537 Anweisungen pro Sekunde *)
MODULE Quad;
FROM InOut IMPORT Echo, WriteLn, WriteString;
FROM QuadBerechneQuad IMPORT BerechneQuad;
FROM QuadLese IMPORT arrList, arrQuad, Lese;
FROM QuadDrucke IMPORT Drucke;
FROM JaNein IMPORT JaNein;
FROM QuadInterpreter IMPORT Interpreter;
FROM QuadTester IMPORT Tester;
VAR BefehlsListe : arrList;
QuadListe : arrQuad;
BEGIN
Echo:=FALSE;
WriteLn;WriteLn;
WriteString("Dieses Programm wandelt ein eingegebenes while-Programm");
WriteLn;
WriteString("in die zugehoerige Quadrupel-Liste;");
WriteString(" gemaess der Definition nach");
WriteLn;
WriteString("Kfoury, Moll und Arbib im Buch 'A Programming Approach to");
WriteLn;
WriteString("Computability (Seite 55 bis 58).");WriteLn;
WriteLn;
WriteString("Soll diese Programm mit vorgegebenen while-Programmen ");
WriteString("getestet werden ? ");
IF JaNein() THEN
IF Tester() THEN
WriteLn;
WriteString("Es sind keine Fehler aufgetreten.");
WriteLn;
END;
ELSE
Lese(BefehlsListe);
BerechneQuad(BefehlsListe,QuadListe);
Drucke(BefehlsListe,QuadListe);
Interpreter(QuadListe);
END;
WriteLn;
WriteLn;
END Quad.